package com.jing.system.comm.enums;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 规则
 * @author jing.yue
 * @version 1.0
 * @since 2012-09-29
 */
public enum RuleType {
	/** 每次升级 */
	TYPE_EACH_UPGRADE("eachUpgrade", "每次升级"),
	/** 反馈一个有建议性的意见 */
	TYPE_FEEDBACK_IDEA("feedbackIdea", "反馈一个有建议性的意见"),
	/** 第一次使用该系统 */
	TYPE_FIRST_APPLY_SYSTEM("firstApplySystem", "第一次使用该系统"),
	/** 每天签到 */
	TYPE_EVERY_SIGN_IN("everySignIn", "每天签到"),
	/** 根据指定地址邀请一个用户 */
	TYPE_INVITE_USERS("inviteUsers", "根据指定地址邀请一个用户"),
	/** 点击“分享它” */
	TYPE_SHARE_WEIBO("shareWeibo", "点击“分享它”"),
	/** 购买一个位置 */
	TYPE_PURCHASE_SEAT("purchaseSeat", "购买一个位置, n代表购买位置花的妞币数目"),
	/** 发送微博信息 */
	TYPE_SEND_WEIBO("sendWeibo", "发送微博信息"),
	/** 颁奖一次 */
	TYPE_RANKING_SEND_WEIBO("rankingSendWeibo", "颁奖一次, n代表颁奖花费的妞币数目");

	private String code;

	private String text;

	public static Map<String, String> map;

	public static Map<String, String> init(){
		if(map == null){
			map = new LinkedHashMap<String, String>();
			map.put(TYPE_EACH_UPGRADE.code, TYPE_EACH_UPGRADE.text);
			map.put(TYPE_FEEDBACK_IDEA.code, TYPE_FEEDBACK_IDEA.text);
			map.put(TYPE_FIRST_APPLY_SYSTEM.code, TYPE_FIRST_APPLY_SYSTEM.text);
			map.put(TYPE_EVERY_SIGN_IN.code, TYPE_EVERY_SIGN_IN.text);
			map.put(TYPE_INVITE_USERS.code, TYPE_INVITE_USERS.text);
			map.put(TYPE_SHARE_WEIBO.code, TYPE_SHARE_WEIBO.text);
			map.put(TYPE_PURCHASE_SEAT.code, TYPE_PURCHASE_SEAT.text);
			map.put(TYPE_SEND_WEIBO.code, TYPE_SEND_WEIBO.text);
			map.put(TYPE_RANKING_SEND_WEIBO.code, TYPE_RANKING_SEND_WEIBO.text);
		}
		return map;
	}

	/**
	 * 根据Code获取对应的汉字
	 * @param code
	 * @return
	 */
	public static String getCodeByText(String code) {
		init();
		return map.get(code);
	}

	public static Map<String, String> getMap() {
		init();
		return map;
	}

	private RuleType(String code, String text) {
		this.code = code;
		this.text = text;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}
}